home *** CD-ROM | disk | FTP | other *** search
Wrap
ssssyyyyssssssssggggiiii((((2222)))) ssssyyyyssssssssggggiiii((((2222)))) NNNNAAAAMMMMEEEE syssgi - Silicon Graphics Inc. system call SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS ####iiiinnnncccclllluuuuddddeeee <<<<ssssyyyyssss////ssssyyyyssssssssggggiiii....hhhh>>>> ppppttttrrrrddddiiiiffffffff____tttt ssssyyyyssssssssggggiiii ((((iiiinnnntttt rrrreeeeqqqquuuueeeesssstttt,,,, ............))));;;; DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN _s_y_s_s_g_i is a system interface specific to Silicon Graphics systems. The value of the _r_e_q_u_e_s_t parameter determines the meaning of the remaining arguments. In the descriptions below, _a_r_g_1, _a_r_g_2, and _a_r_g_3 refer to parameters following the _r_e_q_u_e_s_t argument. The following requests are currently supported: SSSSGGGGIIII____SSSSYYYYSSSSIIIIDDDD Returns an identifier for the given system. This identifier is guaranteed to be unique within the Silicon Graphics product family. The argument _a_r_g_1 for this _r_e_q_u_e_s_t should be a pointer to a character buffer of MMMMAAAAXXXXSSSSYYYYSSSSIIIIDDDDSSSSIIIIZZZZEEEE characters. SSSSGGGGIIII____RRRRDDDDNNNNAAAAMMMMEEEE Returns the process name for the process id specified in _a_r_g_1. The arguments _a_r_g_2 and _a_r_g_3 give the address and length, respectively, of the buffer which will receive the name string. This name corresponds to the name in the _CCCC_OOOO_MMMM_MMMM_AAAA_NNNN_DDDD column of _p_s(1) for the given process. The returned string will be null-terminated unless the caller's buffer is too small, in which case the string is simply truncated at the size of the buffer. The return value gives the number of bytes copied to the buffer, which will be the minimum of the size of the buffer and the size of the field in the user structure that contains the process name. Note that this means that the returned length will typically be greater than the actual length of the name string (in the sense of _s_t_r_l_e_n(3)). SSSSGGGGIIII____RRRRDDDDUUUUBBBBLLLLKKKK Was an obsolete feature and has been discontinued. Users are directed to the process filesystem (see _p_r_o_c(4).) to obtain information about a process. SSSSGGGGIIII____PPPPRRRROOOOCCCCSSSSZZZZ Was an obsolete feature and has been discontinued. Users are directed to the process filesystem (see _p_r_o_c(4).) to obtain information about a process. SSSSGGGGIIII____TTTTUUUUNNNNEEEE This request allows the superuser to redefine tunable variables to more accurately reflect system use. The argument _a_r_g_1 is a buffer pointer which specifies a group name of the tunable variable. The argument _a_r_g_2 is a buffer pointer which holds the address of the tunable variable. _a_r_g_3 should be a buffer containing the tune value. _s_y_s_t_u_n_e(1M) is the preferred way to change these variables. This system call is only supported for 64 bit programs when running on 64 bit kernels. PPPPaaaaggggeeee 1111 ssssyyyyssssssssggggiiii((((2222)))) ssssyyyyssssssssggggiiii((((2222)))) SSSSGGGGIIII____IIIIDDDDBBBBGGGG Used internally for kernel debugging. SSSSGGGGIIII____IIIINNNNVVVVEEEENNNNTTTT Returns information about the hardware inventory of the system. If _a_r_g_1 is SSSSGGGGIIII____IIIINNNNVVVV____SSSSIIIIZZZZEEEEOOOOFFFF then the size of an individual inventory item is returned. If _a_r_g_1 is SSSSGGGGIIII____IIIINNNNVVVV____RRRREEEEAAAADDDD then _a_r_g_3 bytes worth of inventory records are read into the buffer specified by _a_r_g_2. Applications should use _g_e_t_i_n_v_e_n_t(3) to access this information; this internal interface may change. SSSSGGGGIIII____SSSSEEEETTTTLLLLEEEEDDDD If _a_r_g_1 is 1, turn on an LED on the machine. 0 turns it off. This is only available on some SGI computers. SSSSGGGGIIII____SSSSEEEETTTTNNNNVVVVRRRRAAAAMMMM Sets nvram variable with given value. Nvram variables are subset of IRIS PROM Monitor environment variables, which are saved in EEPROM, and the values of which are preserved over power cycle. _a_r_g_1 is a buffer pointer which specifies a name of nvram variable. _a_r_g_2 is a buffer pointer which holds the value of the nvram variable. Both buffers pointed by _a_r_g_1 and _a_r_g_2 must be at least 128 bytes long. SSSSGGGGIIII____GGGGEEEETTTTNNNNVVVVRRRRAAAAMMMM Retrieve values of the IRIS PROM Monitor environment variables. (see _s_g_i_k_o_p_t(2)). _a_r_g_1 is a buffer pointer which specifies either name or index of a IRIS PROM Monitor variable. Both name and index must be ASCII string. _a_r_g_2 is a buffer pointer in which the value be returned. Both buffers pointed by _a_r_g_1 and _a_r_g_2 should be at least 128 bytes long. SSSSGGGGIIII____SSSSEEEETTTTSSSSIIIIDDDD SSSSGGGGIIII____SSSSEEEETTTTPPPPGGGGIIIIDDDD SSSSGGGGIIII____SSSSYYYYSSSSCCCCOOOONNNNFFFF SSSSGGGGIIII____PPPPAAAATTTTHHHHCCCCOOOONNNNFFFF SSSSGGGGIIII____SSSSEEEETTTTGGGGRRRROOOOUUUUPPPPSSSS SSSSGGGGIIII____GGGGEEEETTTTGGGGRRRROOOOUUUUPPPPSSSS SSSSGGGGIIII____SSSSEEEETTTTTTTTIIIIMMMMEEEEOOOOFFFFDDDDAAAAYYYY SSSSGGGGIIII____SSSSPPPPRRRROOOOFFFFIIIILLLL SSSSGGGGIIII____RRRRUUUUSSSSAAAAGGGGEEEE SSSSGGGGIIII____SSSSIIIIGGGGSSSSTTTTAAAACCCCKKKK SSSSGGGGIIII____NNNNEEEETTTTPPPPRRRROOOOCCCC SSSSGGGGIIII____NNNNFFFFSSSSCCCCNNNNVVVVTTTT SSSSGGGGIIII____GGGGEEEETTTTPPPPGGGGIIIIDDDD SSSSGGGGIIII____GGGGEEEETTTTSSSSIIIIDDDD SSSSGGGGIIII____MMMMPPPPCCCCWWWWAAAARRRROOOOFFFFFFFF SSSSGGGGIIII____SSSSPPPPIIIIPPPPEEEE SSSSGGGGIIII____FFFFDDDDHHHHIIII SSSSGGGGIIII____CCCCRRRREEEEAAAATTTTEEEE____UUUUUUUUIIIIDDDD SSSSGGGGIIII____GGGGEEEETTTTAAAASSSSHHHH SSSSGGGGIIII____SSSSEEEETTTTAAAASSSSHHHH SSSSGGGGIIII____GGGGEEEETTTTPPPPRRRRIIIIDDDD PPPPaaaaggggeeee 2222 ssssyyyyssssssssggggiiii((((2222)))) ssssyyyyssssssssggggiiii((((2222)))) SSSSGGGGIIII____GGGGEEEETTTTDDDDFFFFLLLLTTTTPPPPRRRRIIIIDDDD SSSSGGGGIIII____SSSSEEEETTTTPPPPRRRRIIIIDDDD SSSSGGGGIIII____GGGGEEEETTTTSSSSPPPPIIIINNNNFFFFOOOO SSSSGGGGIIII____SSSSEEEETTTTSSSSPPPPIIIINNNNFFFFOOOO SSSSGGGGIIII____AAAARRRRSSSSEEEESSSSSSSS____CCCCTTTTLLLL SSSSGGGGIIII____AAAARRRRSSSSEEEESSSSSSSS____OOOOPPPP SSSSGGGGIIII____GGGGEEEETTTTJJJJUUUUSSSSAAAAGGGGEEEE SSSSGGGGIIII____SSSSEEEETTTTJJJJUUUUSSSSAAAAGGGGEEEE SSSSGGGGIIII____GGGGEEEETTTTJJJJLLLLIIIIMMMMIIIITTTT SSSSGGGGIIII____SSSSEEEETTTTJJJJLLLLIIIIMMMMIIIITTTT SSSSGGGGIIII____GGGGEEEETTTTJJJJIIIIDDDD SSSSGGGGIIII____KKKKIIIILLLLLLLLJJJJOOOOBBBB SSSSGGGGIIII____MMMMAAAAKKKKEEEENNNNEEEEWWWWJJJJOOOOBBBB SSSSGGGGIIII____SSSSEEEETTTTWWWWAAAAIIIITTTTJJJJOOOOBBBBPPPPIIIIDDDD SSSSGGGGIIII____WWWWAAAAIIIITTTTJJJJOOOOBBBB SSSSGGGGIIII____NNNNEEEEWWWWAAAARRRRRRRRAAAAYYYYSSSSEEEESSSSSSSS These are all interfaces that are used to implement various _l_i_b_c functions. These are all subject to change and should not be called directly by applications. SSSSGGGGIIII____GGGGEEEETTTTPPPPLLLLAAAABBBBEEEELLLL SSSSGGGGIIII____SSSSEEEETTTTPPPPLLLLAAAABBBBEEEELLLL SSSSGGGGIIII____GGGGEEEETTTTLLLLAAAABBBBEEEELLLL SSSSGGGGIIII____SSSSEEEETTTTLLLLAAAABBBBEEEELLLL SSSSGGGGIIII____SSSSAAAATTTTRRRREEEEAAAADDDD SSSSGGGGIIII____SSSSAAAATTTTWWWWRRRRIIIITTTTEEEE SSSSGGGGIIII____SSSSAAAATTTTCCCCTTTTLLLL SSSSGGGGIIII____LLLLOOOOAAAADDDDAAAATTTTTTTTRRRR SSSSGGGGIIII____UUUUNNNNLLLLOOOOAAAADDDDAAAATTTTTTTTRRRR SSSSGGGGIIII____RRRREEEECCCCVVVVLLLLUUUUMMMMSSSSGGGG SSSSGGGGIIII____PPPPLLLLAAAANNNNGGGGMMMMOOOOUUUUNNNNTTTT SSSSGGGGIIII____GGGGEEEETTTTPPPPSSSSOOOOAAAACCCCLLLL SSSSGGGGIIII____SSSSEEEETTTTPPPPSSSSOOOOAAAACCCCLLLL These are all interfaces that are used to implement various _l_i_b_c and _l_i_b_n_s_l (enhanced security) functions. These are all subject to change and should not be called directly by applications. SSSSGGGGIIII____RRRREEEEAAAADDDDBBBB SSSSGGGGIIII____WWWWRRRRIIIITTTTEEEEBBBB These are used to read and write character special devices that are greater than 2Gb. _a_r_g_1 is the file descriptor pointing to a character special device. _a_r_g_2 is a buffer in the user's space where the data will be transferred from or to. _a_r_g_3 is the block (512 bytes) offset of where to start the transaction. _a_r_g_4 is the number of blocks to transfer. This interface is superseded in IRIX Release 5.3 by the use of _l_s_e_e_k_6_4, which provides 64-bit seek offsets. SSSSGGGGIIII____SSSSSSSSYYYYNNNNCCCC Synchronously flush out all delayed write buffers. PPPPaaaaggggeeee 3333 ssssyyyyssssssssggggiiii((((2222)))) ssssyyyyssssssssggggiiii((((2222)))) SSSSGGGGIIII____BBBBDDDDFFFFLLLLUUUUSSSSHHHHCCCCNNNNTTTT Allows the calling process to delay the kernel from writing out delayed write buffers by _a_r_g_1 seconds. After that, the normal flush delay will apply. At the end of the system call, the kernel will return the old flush delay. This system call is intended to be used in conjunction with the SSSSGGGGIIII____SSSSSSSSYYYYNNNNCCCC system call on a single processor machine to provide the calling process with an environment that is free of any unwanted disk activities for the period of _a_r_g_1 seconds. SSSSGGGGIIII____QQQQUUUUEEEERRRRYYYY____FFFFTTTTIIIIMMMMEEEERRRR Used by _f_t_i_m_e_r(1). SSSSGGGGIIII____CCCCYYYYCCCCLLLLEEEECCCCNNNNTTTTRRRR____SSSSIIIIZZZZEEEE Returns the size of the integer needed to read the cycle counter. This is useful along with SGI_QUERY_CYCLECNTR to write machine independent code to read the free running hardware counter. On some machines the value needs to be read into a 32 bit integer, and on others the cycle counter needs to be read into a 64 bit integer. SSSSGGGGIIII____QQQQUUUUEEEERRRRYYYY____CCCCYYYYCCCCLLLLEEEECCCCNNNNTTTTRRRR It is best to use the clock_gettime(2) interface with the CLOCK_SGI_CYCLE clock instead of mapping the counter yourself. This is a much more portable solution. That said, this syssgi option returns information about the free running hardware counter on systems that support a high resolution timer. Upon successful completion, an address for the counter is returned. The size of the integer needed to hold the count can be found using the SGI_CYCLECNTR_SIZE syssgi call. On machines with 64-bit counters it can either be read with two separate 32-bit accesses (one at the returned address, and the other at the returned address plus four), or with a single 64-bit "long long" access in MIPS3 or MIPS4 applications. The address must be mapped read-only into the user process space via the _m_m_a_p(2) system call into ////ddddeeeevvvv////mmmmmmmmeeeemmmm before any access can be made. Not all systems return page aligned addresses, so the address must be masked to be page aligned, and the offset added back to the returned mmap address, in order for code to work on all systems, so typically you would see code like this (ignoring error checking): #include <stddef.h> #include <sys/types.h> #include <fcntl.h> #include <sys/mman.h> #include <sys/syssgi.h> PPPPaaaaggggeeee 4444 ssssyyyyssssssssggggiiii((((2222)))) ssssyyyyssssssssggggiiii((((2222)))) #if CYCLE_COUNTER_IS_64BIT typedef unsigned long long iotimer_t; #else typedef unsigned int iotimer_t; #endif __psunsigned_t phys_addr, raddr; unsigned int cycleval; volatile iotimer_t counter_value, *iotimer_addr; int fd, poffmask; poffmask = getpagesize() - 1; phys_addr = syssgi(SGI_QUERY_CYCLECNTR, &cycleval); raddr = phys_addr & ~poffmask; fd = open("/dev/mmem", O_RDONLY); iotimer_addr = (volatile iotimer_t *)mmap(0, poffmask, PROT_READ, MAP_PRIVATE, fd, (off_t)raddr); iotimer_addr = (iotimer_t *)((__psunsigned_t)iotimer_addr + (phys_addr & poffmask)); counter_value = *iotimer_addr; For the Challenge/ONYX and OCTANE families 64-bit counter, define CYCLE_COUNTER_IS_64BIT. Sixty-four bit (MIPS 3, MIPS 4) applications may simply use the example above with CYCLE_COUNTER_IS_64BIT defined. Thirty-two bit applications need to read the halves separately and check for wrap-around. Pass iotimer_addr and two unsigned int pointers to the following routine: void read_time(volatile unsigned *iotimer_addr, unsigned *high, unsigned *low) { while (1) { *high = *iotimer_addr; *low = *(iotimer_addr + 1); if (*high == *iotimer_addr) { return; } } } This will put the top and bottom 32 bits of the time into the memory pointed to by high and low, respectively. If you only need 32-bit precision, you may use the original example but replace the counter_value assignment with counter_value = *(iotimer_addr + 1); SSSSGGGGIIII____SSSSEEEETTTTTTTTIIIIMMMMEEEETTTTRRRRIIIIMMMM changes the value of timetrim from the initial value configured in ////vvvvaaaarrrr////ssssyyyyssssggggeeeennnn////mmmmttttuuuunnnneeee////kkkkeeeerrrrnnnneeeellll (see _l_b_o_o_t(1M) and _a_d_j_t_i_m_e(2)). The argument _a_r_g_1 is interpreted as an integer, PPPPaaaaggggeeee 5555 ssssyyyyssssssssggggiiii((((2222)))) ssssyyyyssssssssggggiiii((((2222)))) which gives the new value of timetrim. SSSSGGGGIIII____GGGGEEEETTTTTTTTIIIIMMMMEEEETTTTRRRRIIIIMMMM obtains the current value of timetrim. The argument _a_r_g_1 must be a pointer to an integer, into which the timetrim value is stored. SSSSGGGGIIII____SSSSEEEETTTT____AAAAUUUUTTTTOOOOPPPPWWWWRRRROOOONNNN Is used to set the time at which the system will automatically power on (if it is powered off at that time). If the system is not powered off at that time (hasn't yet been shutdown and powered off), the call has no effect. Rebooting the system clears the value. This is currently implemented only on OCTANE, Indy, Indigo and Challenge M systems. The 3rd argument is a time_t whose value is the time in seconds from 1 Jan 1970 midnight GMT at which to turn the system on. Also see the _w_a_k_e_u_p_a_t(1M) man page. See the ENOPKG description below for systems not implementing this function. SSSSGGGGIIII____IIIIOOOOPPPPRRRROOOOBBBBEEEE SSSSGGGGIIII____CCCCOOOONNNNFFFFIIIIGGGG These are used by _l_b_o_o_t(1M) to determine the system configuration. SSSSGGGGIIII____MMMMCCCCOOOONNNNFFFFIIIIGGGG Is used by _l_b_o_o_t(1M) and _m_l(1M) to load, register, unload, unregister and list dynamically loadable kernel modules. This is subject to change and should not be called directly by applications. SSSSGGGGIIII____TTTTOOOOSSSSSSSSTTTTSSSSAAAAVVVVEEEE Used by runtime linkers to remove any saved text address spaces. SSSSGGGGIIII____GGGGEEEETTTT____UUUUSSSSTTTT This interface is used to implement various _l_i_b_d_m_e_d_i_a functions. It is subject to change and should not be called directly by applications. SSSSGGGGIIII____SSSSEEEETTTT____FFFFPPPP____PPPPRRRREEEECCCCIIIISSSSEEEE Modifies floating point exception mode for the current process. This is only meaningful on processors that support multiple modes. On these processors, the default mode is usually performance mode (also called imprecise exception mode) and non-sequential memory (nsmm) mode. On all other processors, the default is precise exception and sequential (smm) mode. _a_r_g_1 should be non-zero in order to enable precise exception mode. A value of zero will disable precise exception mode thereby enabling performance mode. PPPPaaaaggggeeee 6666 ssssyyyyssssssssggggiiii((((2222)))) ssssyyyyssssssssggggiiii((((2222)))) In precise exception mode, all floating point exceptions/interrupts are reported on the instruction that caused the exception, so floating point signal handlers can clean up the FP state and continue execution. In performance mode, floating point interrupts are asynchronous and the reported program counter is meaningless. Precise mode is provided as a means of debugging processes and/or backward compatibility for programs that have knowledge of the FP state. It causes significant performance degradation. Currently this call only has an affect on machines with an R8000 processor since that is the only processor which supports this dual execution mode. SSSSGGGGIIII____GGGGEEEETTTT____FFFFPPPP____PPPPRRRREEEECCCCIIIISSSSEEEE Returns the floating point exception mode for the current process. A zero value indicates that precise exception mode is disabled. SSSSGGGGIIII____FFFFPPPP____IIIIMMMMPPPPRRRREEEECCCCIIIISSSSEEEE____SSSSUUUUPPPPPPPP Returns non-zero if the current processor supports imprecise exceptions for floating point instructions. SSSSGGGGIIII____SSSSEEEETTTT____CCCCOOOONNNNFFFFIIIIGGGG____SSSSMMMMMMMM Modifies the memory model for floating point instructions for the current process. Non-sequential memory access mode (turned on by default on processors that support it) allows the processor to do floating point and integer memory operations out of order, thus possibly providing better performance. SSSSGGGGIIII____GGGGEEEETTTT____CCCCOOOONNNNFFFFIIIIGGGG____SSSSMMMMMMMM Returns non-zero if the current process is in sequential memory mode. SSSSGGGGIIII____CCCCOOOONNNNFFFFIIIIGGGG____NNNNSSSSMMMMMMMM____SSSSUUUUPPPPPPPP Returns non-zero if the current processor supports non- sequential memory operations. SSSSGGGGIIII____SSSSEEEETTTT____FFFFPPPP____PPPPRRRREEEESSSSEEEERRRRVVVVEEEE Forces floating point state information (precise/imprecise exception mode as well as sequential/non-sequential memory mode) to be preserved across _e_x_e_c(2) system calls. SSSSGGGGIIII____FFFFSSSS____IIIINNNNUUUUMMMMBBBBEEEERRRRSSSS This interface is used to extract a list of valid inode numbers from a filesystem. It is intended to be called iteratively, to obtain the entire set of inodes. Currently the only filesystem type supporting this operation is the XFS filesystem. _a_r_g_1 is a file descriptor either for the block or character device containing the filesystem of interest (it must be mounted) or for an open file in the filesystem of PPPPaaaaggggeeee 7777 ssssyyyyssssssssggggiiii((((2222)))) ssssyyyyssssssssggggiiii((((2222)))) interest. _a_r_g_2 is a pointer to a variable of type _iiii_nnnn_oooo_6666_4444______tttt containing the last inode returned, initially it should be 0. _a_r_g_3 is the size of the array of structures specified by _a_r_g_4. _a_r_g_4 is the address of an array of structures, of type _xxxx_ffff_ssss______iiii_nnnn_oooo_gggg_rrrr_pppp______tttt (definition found in <sys/fs/xfs_itable.h>). The structure has the following elements: _xxxx_iiii______ssss_tttt_aaaa_rrrr_tttt_iiii_nnnn_oooo (starting inode number), _xxxx_iiii______aaaa_llll_llll_oooo_cccc_cccc_oooo_uuuu_nnnn_tttt (count of bits set in _xxxx_iiii______aaaa_llll_llll_oooo_cccc_mmmm_aaaa_ssss_kkkk), and _xxxx_iiii______aaaa_llll_llll_oooo_cccc_mmmm_aaaa_ssss_kkkk (mask of allocated inodes in this group). The bitmask is 64 bits long, and the least significant bit corresponds to inode _xxxx_iiii______ssss_tttt_aaaa_rrrr_tttt_iiii_nnnn_oooo. Each bit is set if the corresponding inode is in use. _a_r_g_5 is a pointer to a count of returned values, filled in by the call. A _c_o_u_n_t value of 0 means that the inode table has been exhausted. SSSSGGGGIIII____FFFFSSSS____BBBBUUUULLLLKKKKSSSSTTTTAAAATTTT This interface is used to extract inode information (stat information) "in bulk" from a filesystem. It is intended to be called iteratively, to obtain information about the entire set of inodes in a filesystem. Currently the only filesystem type supporting this operation is the XFS filesystem. _a_r_g_1 is a file descriptor either for the block or character device containing the filesystem of interest (it must be mounted) or for an open file in the filesystem of interest. _a_r_g_2 is a pointer to a variable of type _iiii_nnnn_oooo_6666_4444______tttt containing the last inode returned, initially it should be 0. _a_r_g_3 is the size of the array of structures specified by _a_r_g_4. _a_r_g_4 is the address of an array of structures, of type _xxxx_ffff_ssss______bbbb_ssss_tttt_aaaa_tttt______tttt (definition found in <sys/fs/xfs_itable.h>). Many of the elements in the structure are the same as for the _s_t_a_t structure. The structure has the following elements: _bbbb_ssss______iiii_nnnn_oooo (inode number), _bbbb_ssss______mmmm_oooo_dddd_eeee (type and mode), _bbbb_ssss______nnnn_llll_iiii_nnnn_kkkk (number of links), _bbbb_ssss______uuuu_iiii_dddd (user id), _bbbb_ssss______gggg_iiii_dddd (group id), _bbbb_ssss______rrrr_dddd_eeee_vvvv (device value), _bbbb_ssss______bbbb_llll_kkkk_ssss_iiii_zzzz_eeee (block size of the filesystem), _bbbb_ssss______ssss_iiii_zzzz_eeee (file size in bytes), _bbbb_ssss______aaaa_tttt_iiii_mmmm_eeee (access time), _bbbb_ssss______mmmm_tttt_iiii_mmmm_eeee (modify time), _bbbb_ssss______cccc_tttt_iiii_mmmm_eeee (inode change time), _bbbb_ssss______bbbb_llll_oooo_cccc_kkkk_ssss (number of blocks used by the file), _bbbb_ssss______xxxx_ffff_llll_aaaa_gggg_ssss (extended flags), _bbbb_ssss______eeee_xxxx_tttt_ssss_iiii_zzzz_eeee (extent size), _bbbb_ssss______eeee_xxxx_tttt_eeee_nnnn_tttt_ssss (number of extents), _bbbb_ssss______gggg_eeee_nnnn (generation count), _bbbb_ssss______pppp_rrrr_oooo_jjjj_iiii_dddd (project id), _bbbb_ssss______dddd_mmmm_eeee_vvvv_mmmm_aaaa_ssss_kkkk (DMIG event mask), _bbbb_ssss______dddd_mmmm_ssss_tttt_aaaa_tttt_eeee (DMIG state information), and _bbbb_ssss______aaaa_eeee_xxxx_tttt_eeee_nnnn_tttt_ssss (attribute extent count). _a_r_g_5 is a pointer to a count of returned values, filled in by the call. A _c_o_u_n_t value of 0 means that the inode table has been exhausted. SSSSGGGGIIII____FFFFSSSS____BBBBUUUULLLLKKKKSSSSTTTTAAAATTTT____SSSSIIIINNNNGGGGLLLLEEEE This interface is a variant of the SSSSGGGGIIII____FFFFSSSS____BBBBUUUULLLLKKKKSSSSTTTTAAAATTTT interface, used to obtain information about a single inode. _a_r_g_1 is a file descriptor either for the block or character device containing the filesystem of interest (it must be mounted) or for an open file in the filesystem of interest. _a_r_g_2 is a pointer to a variable of type _iiii_nnnn_oooo_6666_4444______tttt containing the inode PPPPaaaaggggeeee 8888 ssssyyyyssssssssggggiiii((((2222)))) ssssyyyyssssssssggggiiii((((2222)))) number of interest. _a_r_g_3 is the address of a structure, of type _xxxx_ffff_ssss______bbbb_ssss_tttt_aaaa_tttt______tttt (definition found in <sys/fs/xfs_itable.h>). An error is returned if the inode number is invalid. SSSSGGGGIIII____XXXXFFFFSSSS____FFFFSSSSOOOOPPPPEEEERRRRAAAATTTTIIIIOOOONNNNSSSS This interface is used to implement various filesystem operations on XFS filesystems. There are several sub- operations implemented. See the header file <sys/fs/xfs_fsops.h> for further information. _a_r_g_1 is a file descriptor either for the block or character device containing the filesystem of interest (it must be mounted) or for an open file in the filesystem of interest. _a_r_g_2 is the operation code, one of XXXXFFFFSSSS____FFFFSSSS____GGGGEEEEOOOOMMMMEEEETTTTRRRRYYYY, XXXXFFFFSSSS____FFFFSSSS____CCCCOOOOUUUUNNNNTTTTSSSS, XXXXFFFFSSSS____GGGGRRRROOOOWWWWFFFFSSSS____DDDDAAAATTTTAAAA, XXXXFFFFSSSS____GGGGRRRROOOOWWWWFFFFSSSS____LLLLOOOOGGGG, or XXXXFFFFSSSS____GGGGRRRROOOOWWWWFFFFSSSS____RRRRTTTT. _a_r_g_3 is a pointer to the input structure, of a type determined by the operation code; it may be null. _a_r_g_4 is a pointer to the output structure, of a type determined by the operation code; it may be null. For XXXXFFFFSSSS____FFFFSSSS____GGGGEEEEOOOOMMMMEEEETTTTRRRRYYYY (get filesystem mkfs- time information), the output structure is _xxxx_ffff_ssss______ffff_ssss_oooo_pppp______gggg_eeee_oooo_mmmm______tttt. For XXXXFFFFSSSS____FFFFSSSS____CCCCOOOOUUUUNNNNTTTTSSSS (get filesystem dynamic global information), the output structure is _xxxx_ffff_ssss______ffff_ssss_oooo_pppp______cccc_oooo_uuuu_nnnn_tttt_ssss______tttt. The XXXXFFFFSSSS____GGGGRRRROOOOWWWWFFFFSSSS____............ operations are used to implement the _x_f_s__g_r_o_w_f_s(1M) command, and are not described further. Only the superuser may call functions that modify data (XFS_GROWFS_DATA, XFS_GROWFS_LOG, XFS_GROWFS_RT, and XFS_SET_RESBLKS). SSSSGGGGIIII____PPPPAAAATTTTHHHH____TTTTOOOO____HHHHAAAANNNNDDDDLLLLEEEE SSSSGGGGIIII____PPPPAAAATTTTHHHH____TTTTOOOO____FFFFSSSSHHHHAAAANNNNDDDDLLLLEEEE SSSSGGGGIIII____FFFFDDDD____TTTTOOOO____HHHHAAAANNNNDDDDLLLLEEEE SSSSGGGGIIII____OOOOPPPPEEEENNNN____BBBBYYYY____HHHHAAAANNNNDDDDLLLLEEEE SSSSGGGGIIII____RRRREEEEAAAADDDDLLLLIIIINNNNKKKK____BBBBYYYY____HHHHAAAANNNNDDDDLLLLEEEE SSSSGGGGIIII____AAAATTTTTTTTRRRR____LLLLIIIISSSSTTTT____BBBBYYYY____HHHHAAAANNNNDDDDLLLLEEEE SSSSGGGGIIII____AAAATTTTTTTTRRRR____MMMMUUUULLLLTTTTIIII____BBBBYYYY____HHHHAAAANNNNDDDDLLLLEEEE SSSSGGGGIIII____FFFFSSSSSSSSEEEETTTTDDDDMMMM____BBBBYYYY____HHHHAAAANNNNDDDDLLLLEEEE These are all interfaces that are used to implement various _l_i_b_d_m functions. The only filesystem that supports these operations is XFS. They are all subject to change and should not be called directly by applications. SSSSGGGGIIII____EEEENNNNUUUUMMMMAAAASSSSHHHHSSSS SSSSGGGGIIII____GGGGEEEETTTTAAAARRRRSSSSEEEESSSSSSSS SSSSGGGGIIII____GGGGEEEETTTTAAAASSSSMMMMAAAACCCCHHHHIIIIDDDD SSSSGGGGIIII____PPPPIIIIDDDDSSSSIIIINNNNAAAASSSSHHHH SSSSGGGGIIII____SSSSEEEETTTTAAAASSSSMMMMAAAACCCCHHHHIIIIDDDD These are all interfaces that are used to implement various _l_i_b_a_r_r_a_y functions. They are all subject to change and should not be used directly by applications. SSSSGGGGIIII____AAAACCCCLLLL____GGGGEEEETTTT SSSSGGGGIIII____AAAACCCCLLLL____SSSSEEEETTTT SSSSGGGGIIII____AAAALLLLLLLLOOOOCCCCSSSSHHHHAAAARRRREEEENNNNAAAA PPPPaaaaggggeeee 9999 ssssyyyyssssssssggggiiii((((2222)))) ssssyyyyssssssssggggiiii((((2222)))) SSSSGGGGIIII____BBBBTTTTOOOOOOOOLLLLGGGGEEEETTTT SSSSGGGGIIII____BBBBTTTTOOOOOOOOLLLLRRRREEEEIIIINNNNIIIITTTT SSSSGGGGIIII____BBBBTTTTOOOOOOOOLLLLSSSSIIIIZZZZEEEE SSSSGGGGIIII____CCCCAAAACCCCHHHHEEEEFFFFSSSS____SSSSYYYYSSSS SSSSGGGGIIII____CCCCAAAAPPPP____GGGGEEEETTTT SSSSGGGGIIII____CCCCAAAAPPPP____SSSSEEEETTTT SSSSGGGGIIII____CCCCKKKKPPPPTTTT____SSSSYYYYSSSS SSSSGGGGIIII____CCCCOOOONNNNSSSSTTTT SSSSGGGGIIII____DDDDBBBBAAAA____CCCCOOOONNNNFFFFIIIIGGGG SSSSGGGGIIII____DDDDYYYYIIIIEEEELLLLDDDD SSSSGGGGIIII____EEEELLLLFFFFMMMMAAAAPPPP SSSSGGGGIIII____EEEERRRRRRRROOOORRRR____FFFFOOOORRRRCCCCEEEE SSSSGGGGIIII____EEEEVVVVEEEENNNNTTTTCCCCTTTTRRRR SSSSGGGGIIII____FFFFOOOO____DDDDUUUUMMMMPPPP SSSSGGGGIIII____FFFFOOOO____SSSSWWWWIIIITTTTCCCCHHHH SSSSGGGGIIII____GGGGEEEETTTTGGGGRRRRPPPPPPPPIIIIDDDD SSSSGGGGIIII____GGGGEEEETTTTSSSSEEEESSSSPPPPIIIIDDDD SSSSGGGGIIII____GGGGEEEETTTTVVVVPPPPIIIIDDDD SSSSGGGGIIII____GGGGEEEETTTT____CCCCOOOONNNNTTTTEEEEXXXXTTTT____IIIINNNNFFFFOOOO SSSSGGGGIIII____GGGGEEEETTTT____CCCCOOOONNNNTTTTEEEEXXXXTTTT____NNNNAAAAMMMMEEEE SSSSGGGGIIII____GGGGEEEETTTT____DDDDIIIISSSSMMMMIIIISSSSSSSSEEEEDDDD____EEEEXXXXCCCC____CCCCNNNNTTTT SSSSGGGGIIII____GGGGEEEETTTT____EEEEVVVVCCCCOOOONNNNFFFF SSSSGGGGIIII____GGGGRRRRIIIIOOOO SSSSGGGGIIII____IIIIOOOO____SSSSHHHHOOOOWWWW____AAAAUUUUXXXX____IIIINNNNFFFFOOOO SSSSGGGGIIII____JJJJOOOOIIIINNNNAAAARRRRRRRRAAAAYYYYSSSSEEEESSSSSSSS SSSSGGGGIIII____KKKKAAAAIIIIOOOO____RRRREEEEAAAADDDD SSSSGGGGIIII____KKKKAAAAIIIIOOOO____SSSSTTTTAAAATTTTSSSS SSSSGGGGIIII____KKKKAAAAIIIIOOOO____SSSSUUUUSSSSPPPPEEEENNNNDDDD SSSSGGGGIIII____KKKKAAAAIIIIOOOO____UUUUSSSSEEEERRRRIIIINNNNIIIITTTT SSSSGGGGIIII____KKKKAAAAIIIIOOOO____WWWWRRRRIIIITTTTEEEE SSSSGGGGIIII____KKKKTTTTHHHHRRRREEEEAAAADDDD SSSSGGGGIIII____LLLLOOOOCCCCKKKKDDDDSSSSYYYYSSSS SSSSGGGGIIII____MMMMAAAACCCC____GGGGEEEETTTT SSSSGGGGIIII____MMMMAAAACCCC____SSSSEEEETTTT SSSSGGGGIIII____MMMMEEEEMMMMPPPPRRRROOOOFFFF____CCCCLLLLEEEEAAAARRRRAAAALLLLLLLL SSSSGGGGIIII____MMMMEEEEMMMMPPPPRRRROOOOFFFF____GGGGEEEETTTT SSSSGGGGIIII____MMMMEEEEMMMMPPPPRRRROOOOFFFF____SSSSTTTTAAAARRRRTTTT SSSSGGGGIIII____MMMMEEEEMMMMPPPPRRRROOOOFFFF____SSSSTTTTOOOOPPPP SSSSGGGGIIII____MMMMIIIINNNNRRRRSSSSSSSS SSSSGGGGIIII____MMMMOOOODDDDUUUULLLLEEEE____IIIINNNNFFFFOOOO SSSSGGGGIIII____NNNNFFFFSSSSNNNNOOOOTTTTIIIIFFFFYYYY SSSSGGGGIIII____NNNNOOOOFFFFPPPPEEEE SSSSGGGGIIII____NNNNUUUUMMMMAAAA____SSSSTTTTAAAATTTTSSSS____GGGGEEEETTTT SSSSGGGGIIII____NNNNUUUUMMMMAAAA____TTTTEEEESSSSTTTTSSSS SSSSGGGGIIII____NNNNUUUUMMMMAAAA____TTTTUUUUNNNNEEEE SSSSGGGGIIII____NNNNUUUUMMMM____MMMMOOOODDDDUUUULLLLEEEESSSS SSSSGGGGIIII____OOOOBBBBJJJJ____EEEEVVVVIIIICCCCTTTT SSSSGGGGIIII____PPPPAAAARRRRTTTT____OOOOPPPPEEEERRRRAAAATTTTIIIIOOOONNNNSSSS SSSSGGGGIIII____PPPPHHHHYYYYSSSSPPPP SSSSGGGGIIII____PPPPMMMMOOOOCCCCTTTTLLLL SSSSGGGGIIII____PPPPRRRRIIIIOOOO____QQQQUUUUEEEERRRRYYYY____BBBBWWWW SSSSGGGGIIII____PPPPRRRROOOOCCCC____AAAATTTTTTTTRRRR____GGGGEEEETTTT PPPPaaaaggggeeee 11110000 ssssyyyyssssssssggggiiii((((2222)))) ssssyyyyssssssssggggiiii((((2222)))) SSSSGGGGIIII____PPPPRRRROOOOCCCC____AAAATTTTTTTTRRRR____SSSSEEEETTTT SSSSGGGGIIII____RRRREEEEAAAADDDD____DDDDAAAANNNNGGGGIIIIDDDD SSSSGGGGIIII____RRRREEEELLLLEEEEAAAASSSSEEEE____NNNNAAAAMMMMEEEE SSSSGGGGIIII____RRRREEEEVVVVOOOOKKKKEEEE SSSSGGGGIIII____RRRRTTTT____TTTTSSSSTTTTAAAAMMMMPPPP____AAAADDDDDDDDRRRR SSSSGGGGIIII____RRRRTTTT____TTTTSSSSTTTTAAAAMMMMPPPP____CCCCRRRREEEEAAAATTTTEEEE SSSSGGGGIIII____RRRRTTTT____TTTTSSSSTTTTAAAAMMMMPPPP____DDDDEEEELLLLEEEETTTTEEEE SSSSGGGGIIII____RRRRTTTT____TTTTSSSSTTTTAAAAMMMMPPPP____EEEEOOOOBBBB____MMMMOOOODDDDEEEE SSSSGGGGIIII____RRRRTTTT____TTTTSSSSTTTTAAAAMMMMPPPP____MMMMAAAASSSSKKKK SSSSGGGGIIII____RRRRTTTT____TTTTSSSSTTTTAAAAMMMMPPPP____SSSSTTTTAAAARRRRTTTT SSSSGGGGIIII____RRRRTTTT____TTTTSSSSTTTTAAAAMMMMPPPP____SSSSTTTTOOOOPPPP SSSSGGGGIIII____RRRRTTTT____TTTTSSSSTTTTAAAAMMMMPPPP____UUUUPPPPDDDDAAAATTTTEEEE SSSSGGGGIIII____RRRRTTTT____TTTTSSSSTTTTAAAAMMMMPPPP____WWWWAAAAIIIITTTT SSSSGGGGIIII____SSSSBBBBEEEE____CCCCLLLLRRRR____IIIINNNNFFFFOOOO SSSSGGGGIIII____SSSSBBBBEEEE____GGGGEEEETTTT____IIIINNNNFFFFOOOO SSSSGGGGIIII____SSSSEEEETTTTVVVVPPPPIIIIDDDD SSSSGGGGIIII____SSSSEEEETTTT____DDDDIIIISSSSMMMMIIIISSSSSSSSEEEEDDDD____EEEEXXXXCCCC____CCCCNNNNTTTT SSSSGGGGIIII____SSSSIIIIGGGGAAAALLLLTTTTSSSSTTTTAAAACCCCKKKK SSSSGGGGIIII____SSSSPPPPEEEECCCCUUUULLLLAAAATTTTIIIIVVVVEEEE____EEEEXXXXEEEECCCC SSSSGGGGIIII____SSSSYYYYMMMMTTTTAAAABBBB SSSSGGGGIIII____SSSSYYYYNNNNCCCCHHHH____CCCCAAAACCCCHHHHEEEE____HHHHAAAANNNNDDDDLLLLEEEERRRR SSSSGGGGIIII____TTTTUUUUNNNNEEEE____SSSSEEEETTTT SSSSGGGGIIII____UUUULLLLIIII SSSSGGGGIIII____UUUUSSSSEEEE____FFFFPPPP____BBBBCCCCOOOOPPPPYYYY SSSSGGGGIIII____XXXXLLLLVVVV____AAAATTTTTTTTRRRR____CCCCUUUURRRRSSSSOOOORRRR SSSSGGGGIIII____XXXXLLLLVVVV____AAAATTTTTTTTRRRR____GGGGEEEETTTT SSSSGGGGIIII____XXXXLLLLVVVV____AAAATTTTTTTTRRRR____SSSSEEEETTTT SSSSGGGGIIII____XXXXLLLLVVVV____NNNNEEEEXXXXTTTT____RRRRQQQQSSSSTTTT SSSSGGGGIIII____XXXXLLLLVVVV____SSSSEEEETTTT____TTTTAAAABBBB These are all interfaces that are used to implement various system library functions. They are all subject to change and should not be called directly by applications. SSSSGGGGIIII____UUUUNNNNSSSSUUUUPPPPPPPPOOOORRRRTTTTEEEEDDDD____MMMMAAAAPPPP____RRRREEEESSSSEEEERRRRVVVVEEEEDDDD____RRRRAAAANNNNGGGGEEEE When _a_r_g_1 is 1 the reserved range from 0x30000000 to 0x40000000 is disabled on all future calls to _mmmm_mmmm_aaaa_pppp(2) and _ssss_hhhh_mmmm_aaaa_tttt(2) made by the process or its children. The effect this causes is as if _MMMM_AAAA_PPPP______SSSS_GGGG_IIII______AAAA_NNNN_YYYY_AAAA_DDDD_DDDD_RRRR or _SSSS_HHHH_MMMM______SSSS_GGGG_IIII______AAAA_NNNN_YYYY_AAAA_DDDD_DDDD_RRRR were used in all future _mmmm_mmmm_aaaa_pppp(2) and _ssss_hhhh_mmmm_aaaa_tttt(2) calls. This option is part of the process state and is inherited across _ffff_oooo_rrrr_kkkk(2) and _eeee_xxxx_eeee_cccc(2) system calls. The reserved range may be re- enabled at any point with this system call by specifying a value of 0 for _a_r_g_1. See _ssss_gggg_iiii______uuuu_ssss_eeee______aaaa_nnnn_yyyy_aaaa_dddd_dddd_rrrr(1) for more information about the reserved range. EEEERRRRRRRROOOORRRRSSSS The following error codes may be returned by _s_y_s_s_g_i: [EFAULT] A buffer is referenced which is not in a valid part of the calling program's address space. PPPPaaaaggggeeee 11111111 ssssyyyyssssssssggggiiii((((2222)))) ssssyyyyssssssssggggiiii((((2222)))) [ENODEV] Could not determine system ID for SSSSGGGGIIII____SSSSYYYYSSSSIIIIDDDD. [ESRCH] Could not find given process for SSSSGGGGIIII____RRRRDDDDNNNNAAAAMMMMEEEE. [EPERM] The effective user ID is not superuser. SSSSGGGGIIII____TTTTUUUUNNNNEEEE and SSSSGGGGIIII____IIIIDDDDBBBBGGGG require superuser privilege. [EINVAL] For SSSSGGGGIIII____TTTTUUUUNNNNEEEE, the first argument was not valid, or the tune structure contained invalid values. For SSSSGGGGIIII____IIIINNNNVVVVEEEENNNNTTTT _a_r_g_1 was neither SSSSGGGGIIII____IIIINNNNVVVV____RRRREEEEAAAADDDD nor SSSSGGGGIIII____IIIINNNNVVVV____SSSSIIIIZZZZEEEEOOOOFFFF. For SSSSGGGGIIII____SSSSEEEETTTTNNNNVVVVRRRRAAAAMMMM _a_r_g_1 is not valid nvram variable name. For SSSSGGGGIIII____GGGGEEEETTTTNNNNVVVVRRRRAAAAMMMM _a_r_g_1 is not valid IRIS PROM Monitor environment variable name. For SSSSGGGGIIII____FFFFSSSS____BBBBUUUULLLLKKKKSSSSTTTTAAAATTTT____SSSSIIIINNNNGGGGLLLLEEEE _a_r_g_2 does not refer to a valid inode number for this filesystem. [ENXIO] SSSSGGGGIIII____SSSSEEEETTTTNNNNVVVVRRRRAAAAMMMM is not supported. [ENOPKG] SSSSGGGGIIII____SSSSEEEETTTT____AAAAUUUUTTTTOOOOPPPPWWWWRRRROOOONNNN is not supported on this system. [ENOMEM] The specified buffer was not large enough to hold the entire list of process ids returned by the SSSSGGGGIIII____PPPPIIIIDDDDSSSSIIIINNNNAAAASSSSHHHH function. SSSSEEEEEEEE AAAALLLLSSSSOOOO ftimer(1), hinv(1), mpadmin(1), sgi_use_anyaddr(1). adjtime(2), clock_gettime(2), clock_settime(2), setitimer(2), sigaction(2), DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS Upon successful completion, a command dependent value (default of zero) is returned. Otherwise, a value of -1 is returned and _e_r_r_n_o is set to indicate the error. PPPPaaaaggggeeee 11112222